﻿using System;
using Perovich.GameObjects.SilverlightWithXna;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework;

#if WINDOWS_PHONE

using Microsoft.Phone.Controls;

namespace Perovich.GameObjects.Interfaces
{
    /// <summary>
    /// Exposes application members required by the <see cref="ObjectGamePage"/> class
    /// </summary>
    public interface IApp
    {
        /// <summary>
        /// Provides access to a <see cref="ContentManager"/> for the application.
        /// </summary>
        ContentManager Content { get; }

        /// <summary>
        /// Provides access to a <see cref="GameTimer"/> that is set up to pump the FrameworkDispatcher.
        /// </summary>
        GameTimer FrameworkDispatcherTimer { get; }

        /// <summary>
        /// Provides easy access to the root frame of the Phone Application.
        /// </summary>
        /// <returns>The root frame of the Phone Application.</returns>
        PhoneApplicationFrame RootFrame { get; }

        /// <summary>
        /// Provides access to the <see cref="AppServiceProvider"/> for the application.
        /// </summary>
        AppServiceProvider Services { get; }
    }
}
#endif